/*
 * libSincroInodos.h
 *
 *  Created on: 05/07/2012
 *      Author: utnso
 */

#ifndef LIBSINCROINODOS_H_
#define LIBSINCROINODOS_H_

#include "libImprimirPorConsola.h"
#include <stdlib.h>
#include <stdint.h>
#include <pthread.h>

//#define MAX_CANT_INODOS 20

typedef struct infoSincroInodo_t{
	uint32_t numInodo;
	pthread_rwlock_t* mutexUsandoInodo;
} infoSincroInodo_t;

typedef struct nodoSincroInodo_t{
	infoSincroInodo_t info;
	struct nodoSincroInodo_t* sig;
} nodoSincroInodo_t;

void apilarNodoSincroInodo(uint32_t);

infoSincroInodo_t desapilarNodoSincroInodo(void);

uint32_t cantNodosSincroInodos(void);

void borrarInodoNoBloqueado(uint32_t);

void vaciarListaSincroInodo(void);

uint8_t obtenerMutexDeInodo(uint32_t, pthread_rwlock_t**);

void empiezoATrabajarEnInodo(uint32_t, uint8_t);

void dejoDeTrabajarEnInodo(uint32_t);

#endif /* LIBSINCROINODOS_H_ */
